#include<bits/stdc++.h>
using namespace std;

struct node {
	int a, b;
} a[10000];

int f[10000];

int main() {
	int n;
	cin >> n;
	for (int i = 1; i <= n; i++) {
		cin >> a[i].a >> a[i].b;
	}
	sort(a + 1, a + n + 1, [](node a, node b) {
		if (a.a != b.a)
			return a.a > b.a;
		else
			return a.b > b.b;
	});
	for (int i = 1; i <= n; i++) {
		f[i] = 1;
		for (int j = 1; j < i; j++) {
			if (a[j].b < a[i].b)
				f[i] = max(f[i], f[j] + 1);
		}
	}
	cout << *max_element(f + 1, f + n + 1);
	return 0;
}
